home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
taropyon
/
guilib3
/
inc
/
gst.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-30
|
4KB
|
129 lines
/* :*****************************************************************
: "gst.h" : system“Pride”文字列入力・ライブラリ
:*****************************************************************
*/
#ifndef _GST_H
#define _GST_H
#ifndef _STRUNDO
# define _STRUNDO /* UNDO システムを使用 */
#endif
#ifndef _KYB_H
# include <kyb.h>
#endif
#ifndef _EVENT_H
# include <event.h>
#endif
#ifndef _STRUNDO_H
# include <strundo.h>
#endif
typedef struct _histbuf_t /* ヒストリ用バッファ構造体 */
{
struct _histbuf_t *next;
struct _histbuf_t *prev;
size_t len;
char p[1];
} HISTBUF_T;
typedef struct /* ヒストリシステム構造体 */
{
SHORT hisLin; /* 何行保持しておくか */
SHORT crtNo; /* 現在何行保持しているか */
HISTBUF_T *top; /* 先頭ポインタ */
HISTBUF_T *crt; /* 現在ポインタ */
HISTBUF_T *last; /* 最終ポンイタ */
HISTBUF_T *org; /* オリジナル文字列 */
} HIST_T;
typedef struct
{
int page; /* 書き込みページ */
POINT pos; /* 表示位置 */
EVT_T *basEvt; /* ベースイベント */
EVT_T *evt; /* イベント */
UCHAR fnt; /* フォントサイズ(8,12,16) */
UCHAR fntype; /* フォントタイプ */
char dspIgnore; /* 表示禁止 */
char _dym_1;
UCHAR fntX, fntY; /* フォント */
UCHAR spcX,spcY; /* 字隔,行間 */
COLOR strCol; /* 文字色 */
COLOR bacCol; /* 背景色 */
COLOR guiCol; /* ガイドマーク色 */
COLOR curCol; /* カーソル色 */
size_t fldSiz; /* 表示文字列の長さ */
size_t maxLen; /* 最大入力文字数 */
size_t len; /* 入力文字数 */
size_t curPos; /* カーソル位置 */
size_t dspPos; /* 表示先頭位置 */
size_t selPos; /* 選択先頭位置 */
char selFlag; /* 選択中?? */
char curFlag; /* カーソル表示チェック用 */
char insFlag; /* 挿入モード */
char editFlag; /* 編集フラグ */
char *orgStr; /* オリジナルストリング */
char *s; /* 入力文字バッファ */
char *oneHis; /* 1行ヒストリバッファ */
char *fldBuf; /* 出力用ワーク */
HIST_T *hist; /* ヒストリシステム */
UNDOSYS *undoSys; /* UNDOシステム */
EVTKEYTBL_T *keyTbl; /* カスタマイズ用バッファ */
int evtRet;
} GST_T;
#define GST_WORK GST_T
/* "gst.c" ----------------------------------------------------*/
#define GSTT_END (-1) /* 終了 */
#define GSTT_CONT (-2) /* 継続 */
#define GSTT_CANCEL (-3) /* 中断 */
extern int (*GstSideWorkFunc)(void);
extern GST_T *GST_init( int x0, int y0, int fldSiz, int maxLen, int fnt,
char *s, HIST_T *histSys );
extern void GST_end( GST_T *gst );
extern void GST_flush( GST_T *gst );
extern void GST_setStr( GST_T *gst, int len, char *buf );
extern void GST_delete( GST_T *gst, SHORT pos, SHORT len );
extern int GST_del_line( GST_T *gst );
extern void GST_cursor( GST_T *gst, int dsp );
extern int GST_edit( GST_T *gst, UINT ec );
extern int GST_send( GST_T *gst, int sLen, KYBUF *kybuf );
extern void GST_mosEvtSet( GST_T *gst );
extern void GST_mosEvtReset( GST_T *gst );
extern void GST_miSet( GST_T *gst, char *s );
extern int GST_gets( GST_T *gst, char *s, EVT_T *exitEvt );
/* "gst_cbuf.c" ------------------------------------------------*/
extern char *CutBuf; /* カットバッファ */
extern size_t CutSize; /* カットバッファサイズ */
extern int CUTBUF_copy(char *buf, size_t len);
extern size_t CUTBUF_paste( char *buf, size_t len );
extern void CUTBUF_clear(void);
/* "gsthis.c" ------------------------------------------------*/
extern HIST_T SysHist;
extern HIST_T *HIST_allocWork( int n );
extern void HIST_freeWork( HIST_T *hist );
extern int HIST_setOrg( HIST_T *hist, char *buf, size_t len );
extern int HIST_set( HIST_T *hist, char *buf, size_t len );
extern void HIST_reset( HIST_T *hist );
extern HISTBUF_T *HIST_prev( HIST_T *hist );
extern HISTBUF_T *HIST_next( HIST_T *hist );
#endif